草庐IT

04. 内部类

全部标签

c# - 向 IntelliSense 提供不应修改分部类的提示

最近我使用了很多代码生成,通常与部分类结合使用。基本上设置如下:包含生成代码的部分类。此代码的某些部分将调用部分方法。代码重新生成了很多时间。代码生成器在某些情况下是自定义工具。部分方法在单独的文件中手动实现。问题是,当我使用诸如“生成方法”之类的Intellisense功能时,出于某种原因,它们是在包含生成代码的文件中生成的。显然我不希望这样。我的问题是:是否可以生成一些提示,告诉Intellisense它不应该触及某些“cs”文件(而是其他部分类)?更新回想起来,我应该注意到我正在使用自定义工具来生成代码。它不是EF或简单的转换;代码生成涉及相当多的逻辑。此外,它还生成带有部分类的

c# - 如何在单元测试期间设置数据结构的内部状态?

我正在用C#编写一个数据结构(使用fibonacciheap的优先级队列),我正在尝试将其用作TDD的学习经验,我对此还很陌生。我知道每个测试应该只测试类的一个部分,这样一个单元的失败就不会把我与多个测试失败混淆,但我不确定当数据结构的状态时如何做到这一点对考试很重要。例如,privatePriorityQueuequeue;[SetUp]publicvoidInitialize(){this.queue=newPriorityQueue();}[Test]publicvoidPeekShouldReturnMinimumItem(){this.queue.Enqueue(2);thi

C# Hashtable 内部数据结构

全部-问我最近遇到的一个具体问题,令人惊讶的是没有找到任何令人信服的答案。C#Hashtable(和内部使用Hashtable的字典)利用的内部支持数据结构是什么所以本质上-什么样的桶是存储在-ArrayList,LinkedList(我知道这不是这里的答案),树结构等中的键值对不寻找冲突策略等-只需计算哈希码-Hashtable在内部使用什么数据结构来存储该值?任何解释或文章指针都会很有帮助。 最佳答案 字典内部数据结构有一个很好的解释:https://www.simple-talk.com/blogs/2011/09/16/th

c# - 你如何在 C# 中使用 "override"内部类?

我想在内部类中的System.Web.Script.Services.ScriptHandlerFactory和其他.NET内容中自定义一些内容。不幸的是,这是一个内部类。在此类中尝试自定义方法时,我有哪些选择? 最佳答案 您可能会找到thisrecentarticle启发。基本上,它表示您不能覆盖任何标记为internal的内容,并且来源几乎是权威的。您最好的希望是一种扩展方法。 关于c#-你如何在C#中使用"override"内部类?,我们在StackOverflow上找到一个类似的

c# - 带有 C# 内部访问修饰符的 Doxygen

我正在使用Doxygen为我正在处理的C#项目生成一些API文档。我在这个项目中有很多“内部”功能,不希望Doxygen在它生成的生成的html中生成这些签名。我已尝试启用HIDE_FRIEND_COMPOUNDS,但这仍然会导致我的内部类暴露在生成的文档中。有人知道怎么做吗? 最佳答案 添加到MacH的答案,你必须设置这些额外的配置参数才能使其工作:#ThePREDEFINEDtagcanbeusedtospecifyoneormoremacronamesthat#aredefinedbeforethepreprocessoris

c# - .NET:HttpClient 使用我的接口(interface) IHttpClient 模拟它,但有一个内部对象为 NULL,它是密封的

不知道有没有人能帮忙。我已经创建了自己的IHttpClient,因此我可以使用最小起订量模拟HttpClient。工作得很好,但有一个名为DetaultRequestHeaders的内部对象,它有一个名为Authorization的属性。我在我的构造函数或我的类中设置它,它在注入(inject)的IHttpClient中接受,当然在运行时一切都按预期工作。但是使用单元测试我得到一个错误提示Objectreferencenotsettoinstance....这是因为DefaultRequestHeaders为空。现在在进一步调查之后,它似乎是HttpRequestHeaders但它是一

c# - 内部 .Net Framework 数据提供程序错误 1

我正在使用带有所有服务包、C#和.NETFramework4.5的VisualStudio2012Ultimate版开发WinForm应用。我得到这个异常:Internal.NetFrameworkDataProvidererror1有了这个堆栈:enSystem.Data.ProviderBase.DbConnectionInternal.PrePush(ObjectexpectedOwner)enSystem.Data.ProviderBase.DbConnectionPool.PutObject(DbConnectionInternalobj,ObjectowningObject

c# - System.String 的内部结构

我用反射查看了System.String的内部字段,发现了三个字段:m_arrayLengthm_stringLengthm_firstChar我不明白这是怎么回事。m_arrayLength是一些数组的长度。这个数组在哪里?它显然不是字符串类的成员字段。m_stringLength是有道理的。它是字符串的长度。m_firstChar是字符串中的第一个字符。所以我的问题是字符串的其余字符在哪里?如果不在字符串类中,字符串的内容存储在哪里? 最佳答案 第一个字符提供对缓冲区中第一个字符的内存地址的访问(通过&m_firstChar)。

c# - C# 中的内部属性 setter

我正在尝试找出解决此问题的好方法。我有一个实现ICustomer接口(interface)的Customer类。这个接口(interface)有很多属性:publicinterfaceICustomer{stringFirstName{get;set;}stringLastName{get;set;}}不过,我只希望某些类能够设置这些属性;即,项目中的那些类。所以我考虑将setter设置为internal:publicclassCustomer:ICustomer{stringFirstName{get;internalset;}stringLastName{get;internals

c# - ASP.NET + C# HttpContext.Current.Session 为空(WebService 内部)

这是我发起session的方式protectedvoidSession_Start(objectsender,EventArgse){HttpContext.Current.Session["CustomSessionId"]=Guid.NewGuid();}在我的类库下的解决方案中,我正在尝试访问它并获得空异常:stringsess=HttpContext.Current.Session["CustomSessionId"];这是我在web.config和app.config中的配置(在我的库中)(应用程序配置) 最佳答案 根据您